CAN over TCP读取
CAN over TCP读取
组件名称 | CAN over TCP read |
---|---|
工具集 | 算盘组件 |
组件作者 | 雪浪云 - 子陵 |
文档版本 | 20220614v00 |
功能 | 组件将接收到的TCP帧解析出其中包含的CAN帧,根据CAN帧更新点位表信息 |
镜像名称 | suanpan_c_can_over_tcp_read:0_0.0.1 |
开发语言 | C |
简介
该组件作为 TCP Client
1 个 TCP 帧包含若干个 CAN 帧
1 个 CAN 帧包含 13 个字节
帧信息:长度 1 个字节,用于标识该 CAN 帧的一些信息,如类型、长度等
FF:标准帧和扩展帧的标识,1 为扩展帧,0 为标准帧。
RTR:远程帧和数据帧的标识,1 为远程帧,0 为数据帧。
保留:保留值为 0,不可写入 1。
D3~D0:标识该 CAN 帧的数据长度。
帧 ID:长度 4 字节,标准帧有效位是 11 位,扩展帧有效位是 29 位。
如标准帧ID号0x3FF的表示方式:
如扩展帧ID号0x12345678的表示方式:
帧数据:长度 8 个字节,有效长度由帧信息的 D3~D0 的值决定。
如 8 字节有效数据的表达方式:
如 6 字节有效数据的表达方式:
以下例子是一个扩展数据帧,ID 为 0x12345678,包含 8 个字节数据(11h、22h、33h、44h、55h、66h、77h、88h)的帧的表达方式:
以下例子是一个标准数据帧,ID 为 0x3FF,包含 6 个字节数据(11h、22h、33h、44h、55h、66h)的帧的表达方式:
功能描述
支持连接 IEM7110-2G 网管型工业级以太网交换机。
支持导入 CAN 的点位表。
支持作为 TCP Client 连接到 TCP Server。
支持输出更新的点位值。
输入桩
组件无输入桩
输出桩
输出端子1
组件有1个输出
端口名称:输出数据
输入类型:JSON格式文本
功能描述:输出更新的点位信息的JSON格式文本
示例:如下所示:
{
"name":"ESTOP",
"value":100
}
数据接收方式
组件无输入桩,异步模式同步模式任选。
参数配置
上传文件,上传特定格式的 csv 点位表,各个字段要按下面范例中给出的顺序和格式填写,其中 name 字段不能有重复, value 字段默认都是0。canid 是 对应 CAN 帧的ID,byte 值是 CAN 帧数据的第几个 byte ,bitmask 是当前 byte 中哪几个 bit ,offset 是相对于 bit 0 的偏移量。
name | alias | canid | byte | bitmask | offset | value |
---|---|---|---|---|---|---|
Standby | 备用 | 0x18A | 0 | 0xFF | 0 | 0 |
Full_auto | 全自动截割 | 0x18A | 1 | 0x10 | 4 | 0 |
Cutting_start | 开始 | 0x18A | 1 | 0x20 | 5 | 0 |
Cutting_pause | 暂停 | 0x18A | 1 | 0x40 | 6 | 0 |
Cutting_stop | 停止 | 0x18A | 1 | 0x80 | 7 | 0 |
ESTOP | 急停 | 0x18A | 3 | 0x01 | 0 | 0 |
Start | 开机 | 0x18A | 3 | 0x02 | 1 | 0 |
Reset | 复位 | 0x18A | 3 | 0x04 | 2 | 0 |
Bell_set | 警铃设置 | 0x18A | 3 | 0x08 | 3 | 0 |
Bell | 报警 | 0x18A | 3 | 0x10 | 4 | 0 |
Boring | 支护掘进 | 0x18A | 3 | 0x20 | 5 | 0 |
Reserved_1 | 预留1 | 0x18A | 3 | 0x40 | 6 | 0 |
Reserved_2 | 预留2 | 0x18A | 3 | 0x80 | 7 | 0 |
... | ... | ... | ... | ... | ... | ... |
Cutting_up | 截割升 | 0x18B | 0 | 0xFF | 0 | 0 |
Cutting_down | 截割降 | 0x18B | 1 | 0xFF | 0 | 0 |
Cutting_left | 截割左 | 0x18B | 2 | 0xFF | 0 | 0 |
Cutting_right | 截割右 | 0x18B | 3 | 0xFF | 0 | 0 |
Cutting_extend | 截割伸 | 0x18B | 4 | 0x01 | 0 | 0 |
Cutting_shorten | 截割缩 | 0x18B | 4 | 0x02 | 1 | 0 |
Shovel_up | 铲板升 | 0x18B | 4 | 0x04 | 2 | 0 |
Shovel_down | 铲板降 | 0x18B | 4 | 0x08 | 3 | 0 |
Back_support_up | 后支撑升 | 0x18B | 4 | 0x40 | 6 | 0 |
Back_support_down | 后支撑降 | 0x18B | 4 | 0x80 | 7 | 0 |
Left_band_forward | 左履带进 | 0x18B | 5 | 0xFF | 0 | 0 |
Left_band_backward | 左履带退 | 0x18B | 6 | 0xFF | 0 | 0 |
Right_band_forward | 右履带进 | 0x18B | 7 | 0xFF | 0 | 0 |
Right_band_backward | 右履带退 | 0x18C | 0 | 0xFF | 0 | 0 |
Standby_7 | 备用7 | 0x18C | 1 | 0x01 | 0 | 0 |
Standby_8 | 备用8 | 0x18C | 1 | 0x02 | 1 | 0 |
Standby_9 | 备用9 | 0x18C | 1 | 0x04 | 2 | 0 |
Standby_10 | 备用10 | 0x18C | 1 | 0x08 | 3 | 0 |
Standby_11 | 备用11 | 0x18C | 1 | 0x10 | 4 | 0 |
Standby_12 | 备用12 | 0x18C | 1 | 0x20 | 5 | 0 |
Ground | 地面 | 0x18C | 1 | 0x40 | 6 | 0 |
Underground | 井下 | 0x18C | 1 | 0x80 | 7 | 0 |
... | ... | ... | ... | ... | ... | ... |
执行调优
建议不进行特别配置,按照平台的默认分配运行。
使用方法
未部署状态下的操作
前面板操作
添加“显示文本”组件
后面板操作
添加“can_over_tcp_read”组件,输出端和“显示文本”组件的输入端连接。
在右面板“参数设置”页面,填写TCP Server的地址和端口,比如下面的测试中使用了
10.88.35.251作为地址,32000作为端口号,上传文件处选择要上传的点位表csv文件(文件名必须是 test_can_read.csv),
上传后可以查看
部署状态下的操作
使用网络调试助手作为对接的测试软件,创建一个TCP Server,本地主机地址
10.88.35.251,本地主机端口32000,接受设置为 HEX 可以显示16进制字节数据。
打开Server后,可以看到组件自动连接到了Server,
将网络调试助手的发送设置为HEX可以发送16进制字节数据,在数据发送框中,输入三条包含CAN帧的报文,
08 00 00 01 8A 00 00 00 01 00 00 00 00
08 00 00 01 8B 00 00 00 00 00 00 00 00
08 00 00 01 8C 00 00 00 00 00 00 00 00
点击发送
可以看到前面板的显示文本也显示了json格式的输出
{"name":"ESTOP","value":1}